//#define  _CRT_SECURE_NO_WARNINGS
//#include <vector>
//using namespace std;
//#include <string>
//#include <iostream>
//int ret;
//string path;
//vector<int> arr(100);
//vector<int> days{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//#include <set>
//set<string>_set;
//bool func(string& path)
//{
//	int month = stoi(path.substr(4, 2));
//	int day = stoi(path.substr(6));
//	if (month > 12 || month == 0) return false;
//	if (days[month] < day || day == 0) return false;
//	_set.insert(path);
//}
//void dfs(string path, int pos, int index)
//{
//	if (pos == 8)
//	{
//		func(path);
//		return;
//	}
//	for (int i = index; i < 100; i++)
//	{
//		if (pos == 0 && arr[i] == 2)
//			dfs("2", pos + 1, i + 1);
//		else if (pos == 1 && arr[i] == 0)
//			dfs("20", pos + 1, i + 1);
//		else if (pos == 2 && arr[i] == 2)
//			dfs("202", pos + 1, i + 1);
//		else if (pos == 3 && arr[i] == 3)
//			dfs("2023", pos + 1, i + 1);
//		else if (pos == 4 && arr[i] >= 0 && arr[i] <= 1)
//			dfs(path + to_string(arr[i]), pos + 1, i + 1);
//		else if (pos == 5)
//			dfs(path + to_string(arr[i]), pos + 1, i + 1);
//		else if (pos == 6 && arr[i] >= 0 && arr[i] <= 3)
//			dfs(path + to_string(arr[i]), pos + 1, i + 1);
//		else if (pos == 7)
//			dfs(path + to_string(arr[i]), pos + 1, i + 1);
//	}
//
//}
//int main()
//{
//	for (int i = 0; i < 100; i++)
//		cin >> arr[i]; //1372416
//	dfs("", 0, 0);
//	cout << _set.size();
// 	return 0;
//}/*
//5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2
//7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1
//0 0 9 4 8 0 9 1 2 8 5 0 2 5 3 3
// */